The invention is related to Internet protocol (IP) telephony systems. More specifically, the invention is related to systems and methods for setting up new telephony communications for a customer of an IP telephony system.
An IP telephony system stores user and account information in various databases. The account information could be for a single user's account, for a family account that includes multiple users, or for a business account that also includes multiple users. As the IP telephony system adds additional users and accounts, the databases that store user and account information also grow. As more and more information is added to those databases, it eventually makes sense, or becomes necessary, to separate a single large database into two or more smaller databases. However, once this occurs, it can create problems with connecting calls between two users of the IP telephony system. The problems that can occur when a single database of user or account information is separated into two or more separate databases is described below in connection with FIGS. 1 and 2.
FIG. 1 depicts a communications environment which includes an IP telephony system 130 that operates to connect calls for its customers. The IP telephony system 130 includes a single call cluster 131 that is coupled to an inbound proxy server 132 and an outbound proxy server 134. The IP telephony system 130 also includes a billing unit 136 that receives call detail records (CDRs) from elements that are part of the IP telephony system 130, and from elements outside the IP telephony system 130. The billing unit 136 uses information in the CDRs to bill the users of the IP telephony system 130, and to bill other telephony systems for completing calls to users of the IP telephony system 130.
The IP telephony system 130 includes a call cluster 131 that acts to setup outgoing and incoming calls for customers. The call cluster 131 makes use of an inbound proxy server 132 to receive incoming calls from third party telephony systems, and an outbound proxy server 134 to setup outgoing calls that are to be handled by third party telephony systems. The call cluster 131, the inbound proxy server 132 and the outbound proxy server 134 are all coupled to a data network 150, such as the Internet. In some instances, elements of the call cluster 131 may be directly coupled to the inbound proxy server 132 and/or the outbound proxy server 134. In other instances, elements of the call cluster 131 may communicate with the inbound proxy server 132 and the outbound proxy server 134 only via data communications passing through a data network 150 such as the Internet.
The inbound proxy server 132 and the outbound proxy server 134 are also coupled to one or more third party telephony systems 140, such as a publically switched telephone network (PSTN), a cellular telephony system, or another Internet protocol telephony system. The inbound proxy server 132 and the outbound proxy server 134 may be directly connected to one or more third party telephony systems, or they may communicate with other telephony systems via a data network 150 such as the Internet.
The third party telephony systems 140 are connected to customer telephony devices, which can include an analog telephony device 160 that is coupled to a PSTN, a cellular telephone 162 that communicates through a cellular telephony system, and a smartphone that communicates through a cellular telephony system. The smartphone 164 may also be capable of establishing a wireless data connection to a data network 150, such as the Internet, via a wireless router. Such a wireless data connection could make it possible for the smartphone 164 to establish and conduct telephone calls through an Internet protocol telephony system via data communications passing over the Internet 150.
FIG. 1 also shows that users of the IP telephony system 130 130 exist under two different accounts. A first account 110 includes two IP telephony devices 112, 114. The two IP telephony devices 112, 114 are able to receive incoming calls or place outgoing calls through the call cluster 131. The two IP telephony devices 112, 114 communicate with the call cluster 131 via a data network 150 such as the Internet. The two IP telephony devices 112, 114 could be co-located in a building or within a business. However, because the IP telephony devices 112, 114 communicate via a data network connection, the IP telephony devices 112, 114 could be located anywhere so long as they can connect to the data network 150.
The second account 120 includes three IP telephony devices 122, 124, 126. Here again, the three IP telephony devices 122, 124, 126 communicate via a data network connection, and thus can be located anywhere that they can connect to the data network.
The first and second accounts 110, 120 could represent two different businesses that have established accounts with the IP telephony system 130. In other instances, one or both of the accounts could represent a family that has multiple telephony devices. Typically, however, the billing for an account would be consolidated and sent to a central location.
Although FIG. 1 only shows two accounts, in fact an IP telephony system 130 could service a large number of different accounts, and each account could have a large number of IP telephony devices. Thus, FIG. 1 is only intended to provide a high level depiction of the elements involved in such a communications environment.
The call cluster 131 includes databases with information about each of the accounts, and each of the IP telephony devices used by each account. Elements of the call cluster 131 directly communicate with the IP telephony devices used by customers to setup outgoing telephony communications and to setup incoming telephony communications directed to the customers' IP telephony devices.
When a customer wishes to setup a telephony communication that is directed to a telephony device that does not belong to one of one of the accounts serviced by the IP telephony system 130, the telephony communication is sent through a third party telephony system 140. For example, if a user of the first IP telephony device 112, which is part of the first account 110, requests the setup of a telephone call to the analog telephony device 160, the call setup request is first passed from the IP telephony device 112 to a controller, such as a session border controller, of the call cluster 131. The controller checks to see if the call setup request is directed to another IP telephony device that is part of an account serviced by the IP telephony system 130. In this case, because the analog telephony device 160 is not part of an account serviced by the IP telephony system 130, the controller determines that the call setup request must be sent to another telephony system in order to be routed to the correct telephony device.
The controller of the call cluster 131 forwards the call setup request to the outgoing proxy server 134 for connection to the analog telephony device 160. The outbound proxy server 134 passes the call setup request to an appropriate third party telephony system, such as a PSTN 140, and the PSTN 140 ultimately forwards the call to the analog telephony device 160. Because the IP telephony system must enlist the aid of a third party telephony system to complete the requested call, the IP telephony system 130 will likely have to pay that third party telephony system to setup and complete the requested call to the analog telephony device 160. For this reason, the IP telephony system 130 may charge the first account 110 for setting up and carrying the requested call. In some instances, however, the cost of the requested call may be covered by a monthly fee paid by the first account 110.
When a user's IP telephony device requests the setup of a telephony communication that is directed to a telephony device that is part of one of the accounts serviced by the IP telephony system 130, a significantly different call flow results. For example, if a user of the first IP telephony device 112, which is part of the first account 110, requests the setup of a telephone call to the first IP telephony device 122 of the second account 120, the call setup request is first passed from the IP telephony device 110 to the controller of the call cluster 131. The controller checks to see if the call setup request is directed to another IP telephony device that is part of an account serviced by the IP telephony system 130, and discovers that this is the case. The controller causes a server of the call cluster 131 to setup the call to the first IP telephony device 122 of the second account 120 as an IP call. In this case, the IP telephony system 130 is able to setup and carry the call without the assistance of a third party telephony system. As a result, the IP telephony system 130 does not need to pay a third party in order to setup and carry the requested call. For this reason, the IP telephony system 130 may not charge the first account 110 for setting up and carrying the call.
When a party with a telephony device that is not serviced by the IP telephony system 130 wishes to setup a telephony communication to an IP telephony device that is serviced by the IP telephony system, the communication is also routed though the call cluster 131. The communication is first received from one of the third party telephony systems 140 by the inbound proxy server 132. The inbound proxy server 132 forwards the communication to the call cluster 131. The call cluster 131 then acts to route the call to the IP telephony device that corresponds to the dialed telephone number. The communication is then handled by a server of the call cluster, which sets up the telephony communication to the appropriate IP telephony device.
As mentioned above, as the IP telephony system 130 grows and adds additional accounts with additional users, the databases within the call cluster 131 become larger. At some point in time, it becomes desirable or necessary to split a single large database into two smaller databases. When this occurs, the IP telephony system will create a new, second call cluster with its own databases, controllers and servers for routing and carrying calls. The first call cluster ends up servicing a first subset of all the accounts, and the second call cluster ends up servicing a second subset of all the accounts. The databases in the first call cluster only include information about the accounts and IP telephony devices in the first subset, and the databases in the second call cluster only include information about the accounts and IP telephony devices in the second subset.
When a second call cluster is added to an IP telephony system as described above, and other changes to the basic structure are not made, it can cause various problems in routing calls to the IP telephony devices of users of the IP telephony system, as described below.
FIG. 2 depicts a communications environment similar to the one in FIG. 1, except that a second call cluster 137 and an associated inbound proxy server 138 and outbound proxy server 139 have been added to the IP telephony system. Also, a third account 170 with IP telephony devices 172, 174 has been added. FIG. 2 depicts the communications environment after enough new users and/or accounts have been added by the IP telephony system 130 that it became necessary to split the user and account databases in the original call cluster 131 into two separate databases. When that split occurs, the databases that remain in the first call cluster 131 have information about only the first account 110 and the second account 120, and the IP telephony devices 112, 114, 122, 124, 126 in those accounts. The databases in the second call cluster 137 have information about only the third account 170 and the IP telephony devices 172, 174 in that third account 170. The IP telephony devices in the first and second accounts 110, 120 all communicate with the first call cluster 131 to place outgoing calls, and to receive incoming calls. The IP telephony devices in the new third account 170 communicate with the second call cluster 137 to place outgoing calls and to receive incoming calls.
When the IP telephony system 130 is configured as depicted in FIG. 2, outgoing calls placed by IP telephony devices serviced by the IP telephony system 130, and which are directed to telephony devices that are not serviced by the IP telephony system 130, are handled in substantially the same manner as similar calls are handled by the system as depicted in FIG. 1. However, as will be explained below, when a user of an IP telephony device serviced by the IP telephony system 130 sends a telephony communication to another telephony device that is serviced by the IP telephony system 130, the call could be handled quite differently than it would be by the system depicted in FIG. 1.
For example, if a user of the first IP telephony device 112 of the first account 110 places a call to the IP telephony device 172 that is part of the third account, the IP telephony device 112 will sent a call setup message to the first call cluster 131. The first call cluster 131 checks its databases to determine if the called telephony device is listed in the databases. In this case, because the called IP telephony device 172 is serviced by the second call cluster 137, information about the IP telephony device 172 will not be present in the databases within the first call cluster 131. For this reason, the first call cluster 131 sends the call setup message to the first outbound proxy server 134, and the first outbound proxy server 134 sends the call to a third party telephony system 140 for connection to the called telephony device. The third party telephony system 140 routes the call to the second inbound proxy server 138 associated with the second call cluster 137. The second inbound proxy server 138 forwards the call setup message to the second call cluster 137. A controller of the second call cluster 137 then locates information about how to reach the IP telephony device 172 in its databases, and a server of the second call cluster 137 sends the call to the IP telephony device 172.
When a call is handled as described above, it is necessary to involve a third party telephony system in routing the call to the called telephony device, even though the call is originating from and terminating to IP telephony devices serviced by the IP telephony system 130. This means the IP telephony system 130 will be forced to pay a third party to route the call to one of its own customers, which is highly undesirable. It would be far preferable if a call originating from and terminating to IP telephony devices serviced by the IP telephony system 130 could be routed by elements of the IP telephony system 130 alone, so that it is not necessary to involve third party telephony systems.